function AllReady() {
  var mstform = Ext.getCmp("CntPayM7"); //获取表头数据
  var dgrid = Ext.getCmp("CntPayDRkd7");
  var dgrid1 = Ext.getCmp("CntPayDRkdOld7");
  mstform.getItem("PhidCnt").userSetMustInput(false);
  mstform.getItem("PhidPc").userSetMustInput(false);
  mstform.getItem("CurrType").userSetMustInput(false);
  mstform.getItem("ExchRate").userSetMustInput(false);
  dgrid1.setMustInputCol("ItemNo", false);
  if (!dgrid1) {
    console.log("1111");
    dgrid1.setMustInputCol("OwnAmtVatFc", false); // 通用帮助加_name true-必输   false-不必输
    dgrid1.setMustInputCol("CmAmtVatFc", false); // 通用帮助加_name true-必输   false-不必输
    dgrid1.setMustInputCol("CmQty", false); // 通用帮助加_name true-必输   false-不必输
    dgrid1.setMustInputCol("OwnQty", false); // 通用帮助加_name true-必输   false-不必输
    dgrid1.hideColumn("OwnAmtVatFc", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
    dgrid1.hideColumn("CmAmtVatFc", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
    dgrid1.hideColumn("CmQty", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
    dgrid1.hideColumn("OwnQty", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
  }
  var dstore = dgrid1.store;
  var toolbar = Ext.getCmp("toolbar");
  toolbar.get("imp").setText("引用采购入库");
  dgrid.setMustInputCol("OwnAmtVatFc", false); // 通用帮助加_name true-必输   false-不必输
  dgrid.setMustInputCol("CmAmtVatFc", false); // 通用帮助加_name true-必输   false-不必输
  dgrid.setMustInputCol("CmQty", false); // 通用帮助加_name true-必输   false-不必输
  dgrid.setMustInputCol("OwnQty", false); // 通用帮助加_name true-必输   false-不必输
  dgrid.hideColumn("OwnAmtVatFc", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
  dgrid.hideColumn("CmAmtVatFc", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
  dgrid.hideColumn("CmQty", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏
  dgrid.hideColumn("OwnQty", true); // 通用帮助加_name   true-隐藏   false-可见//	表体控件设为隐藏

  if (mstform) {
    // mstform.getItem("Title").userSetMustInput(false); // true-必输   false-不必输
    // mstform.getItem("Title").setVisible(false); //true-可见   false-x隐藏
  }
  //采购对账单的标题默认取项目名称+对账单 隐藏掉
  if (otype == "edit" || otype == "add" || otype == "copy") {
    mstform.on("dataready", function () {
      console.log("Data ready event triggered");
    });
    mstform.getItem("PhidPc").addListener("change", function () {
      // setTitle();
    });
  }
  if (otype == "add") {
    mstform.getItem("CurrType").setValue("1");
    mstform.getItem("ExchRate").setValue("1");
    BatchBindCombox([mstform.getItem("CurrType")]);
  }
  dgrid1.addListener("edit", function (editor, e) {
    // 获取当前编辑的字段名和新值
    console.log(`表体编辑`);
    const dstore = e.record;

    console.log("监听读取", dstore);

    edit(dstore);
  });
  function edit(dstore) {
        const user_new_prc = dstore.get("user_new_prc");
        const PrcFc = dstore.get("PrcFc");
        const user_new_rate = dstore.get("user_new_rate");
        const RepQty = dstore.get("RepQty");
        dstore.set("user_yfsyl", RepQty);
        // console.log(RepQty,PrcFc,user_yfsyl);
        if (PrcFc > user_new_prc) {
            Ext.Msg.alert("提示", "未税单价超过合同未税单价");
            dstore.set("PrcFc", user_new_prc);
            dstore.set("PrcVatFc", user_new_prc * (user_new_rate + 1));
        }
        let user_yfsysl = 0
        dgrid.getStore().each(item => {
            user_yfsysl += (Number(item.get("user_yfsyl")) || 0)
        })
        mstform.getItem("user_yfsysl").setValue(user_yfsysl)
        dgrid.getView().refresh();
    }
  if (otype == $Otype.ADD || otype == $Otype.EDIT || otype == $Otype.COPY ) {
    dstore.on("datachanged", async function (dstore, eOpts) {
            const records = dstore.getRange();
            let user_yfsysl = 0
            for (const record of records) {
                // 含税单价;PrcVatFc
                // 折扣金额user_discount_amtEW
                // 折扣后价格user_discount_prc
                // 新税率 user_new_rate
                // 原税率 TaxRate
                // 折扣后价格 = 含税单价/（1+新税率）*（1+原税率）

                record.set("user_discount_prc", (Number(record.get("PrcVatFc")) / Number(1 + record.get("user_new_rate"))) * Number(1 + record.get("TaxRate")));
                // record.set("user_new_rate",Number(record.data.TaxRate));--0609
                // record.set("user_new_prc",Number(record.data.PrcFc)); -- 0609
                // if (otype == $Otype.ADD) {
                console.log("改变应付剩余量");

                record.set("user_yfsyl", Number(record.data.RepQty));
                user_yfsysl += Number(record.data.RepQty)
                // }

                // record.data.user_new_rate = Number(record.data.TaxRate);
                // record.data.user_new_prc = Number(record.data.PrcFc);

                dgrid.getView().refresh();
                //折扣金额 = 折扣后价格 * 数量
                if (record.get("user_discount_prc")) {
                    //   record.set("user_new_rate",Number(record.data.TaxRate)); --0609
                    //   record.set("user_new_prc",Number(record.data.PrcFc)); -- 0609
                    record.set("user_discount_amt", Number(record.get("user_discount_prc")) * Number(record.get("RepQty")));
                }
            }
            mstform.getItem("user_yfsysl").setValue(user_yfsysl)
            dgrid.getView().refresh();
        });
  }
  dgrid.addListener("edit", function (editor, e) {
    // 获取当前编辑的字段名和新值
    console.log(`表体编辑`);
    var editedField = e.field;
    var newValue = e.record.get(editedField);
    console.log(editedField);
    console.log(newValue);

    // 获取所有选中的行
    var selectedRows = dgrid.getSelectionModel().getSelection();

    // 遍历所有选中的行，更新对应字段
    selectedRows.forEach(function (row) {
      if (row !== e.record) {
        // 排除已编辑的行（避免重复）
        row.set(editedField, newValue);
        // dgrid.updateRow(row); // 更新行显示
      }
    });
  });
  mstform.getItem("RecOrg").addListener("change", function (args) {
    console.log(args);
    mstform.getItem("Title").setValue(`${args.rawValue}--对账单`);
    mstform.getItem("RecCompName").setValue(mstform.getItem("RecOrg").getValue());
    BatchBindCombox([mstform.getItem("RecCompName")]);
    getPtInfoByPhid();
  });
  ////////////////////////////////////////--function--////////////////////////////////////////
  function getPtInfoByPhid() {
    console.log("带出项目信息", mstform.getItem("RecOrg").getValue());
    if (mstform.getItem("RecOrg").getValue()) {
      execServer("searchHtxx", { phident: mstform.getItem("RecOrg").getValue() }, function (res) {
        if (res.count == 0) return;
        const datas = JSON.parse(res.data)[0].extendObjects;
        console.log(datas);

        // mstform.getItem("Title").setValue(`${datas.bill_name}--对账单`);
        // mstform.getItem("PhidCnt").setValue(datas.bill_no);
        mstform.getItem("PhidCnt").setValue(datas.phid);
        mstform.getItem("CntTitle").setValue(datas.bill_name);
        mstform.getItem("BRCntNo").setValue(datas.bill_no);
        // mstform.getItem("PhidCnt_EXName").setValue(datas.bill_no);
        mstform.getItem("PhidPc").setValue(datas.phid_pc);

        BatchBindCombox([mstform.getItem("PhidCnt")]);
        BatchBindCombox([mstform.getItem("PhidPc")]);
      });
    }
  }
  // 设置标题
  function setTitle() {
    try {
      var mstform = Ext.getCmp("CntPayM7");
      var titleItem = mstform?.getItem("Title");
      var phidPc = mstform?.getItem("PhidPc")?.value;
      var RecOrg = mstform?.getItem("PhidPc")?.value;

      titleItem?.setValue("对账单"); // 默认赋值

      if (!phidPc) return;

      execServer("getPtInfoByPhid", { phid: phidPc }, function (res) {
        let datas = JSON.parse(res.data);
        console.log(datas);

        var data = res?.count > 0 ? JSON.parse(res.data)[0]?.extendObjects : "";
        titleItem?.setValue((data.pc_name || "") + "对账单");
      });
    } catch (error) {
      console.error("功能扩展报错:", error);
    }
  }
}
